package top.ninwoo.utils.service;

/**
 * @Author joliu
 * @Description Docker内部的服务接口 TODO:这个应该移动到集群一层
 * @Date　Create in 下午10:04 2019/10/28
 */
public interface DockerInternalNetworkService {
    // 网络拦截

    /**
     * 最基础的一个实现，功能也最单一
     *  iptables -I INPUT -s 172.17.0.1 -j DROP
     * 后续需要扩展多种实现方案
     * @param containerId
     * @param destinationIp
     * @return iptables 的条目
     */
    int drop(String containerId, String destinationIp);

    /**
     * 取消拦截，这里可能需要涉及到上一条记录的id
     * @param containerId
     */
    void cancelDrop(String containerId);

    // 网络转发
    int forward(String containerId, String targetIp, String nextIp);

    // 网络限速
    int qos();
}
